package com.ncloud.system.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.ToStringSerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.ncloud.system.conf.CustomJsonDateDeserializer;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@SuppressWarnings("serial")
public class Role implements Serializable{
	@JSONField(serializeUsing=ToStringSerializer.class)
	private Long roleId;
	@JSONField(serializeUsing=ToStringSerializer.class)
	private Long companyId;
	private String companyName;
	private String roleName;
	private String useTag;
	@JSONField(serializeUsing=ToStringSerializer.class)
	private Long createUser;
	@JSONField(format="yyyy-MM-dd HH:mm:ss")
	private Date createDate;
	@JSONField(serializeUsing=ToStringSerializer.class)
	private Long updateUser;
	@JSONField(format="yyyy-MM-dd HH:mm:ss")
	private Date updateDate;
	private String remarks;
	private List<Menu> menus = new ArrayList<Menu>();
	private Boolean selectState;

	public Long getRoleId() {
		return roleId;
	}

	public void setRoleId(Long roleId) {
		this.roleId = roleId;
	}

	public Long getCompanyId() {
		return companyId;
	}

	public void setCompanyId(Long companyId) {
		this.companyId = companyId;
	}

	public String getRoleName() {
		return roleName;
	}

	public void setRoleName(String roleName) {
		this.roleName = roleName;
	}

	public String getUseTag() {
		return useTag;
	}

	public void setUseTag(String useTag) {
		this.useTag = useTag;
	}

	public Long getCreateUser() {
		return createUser;
	}

	public void setCreateUser(Long createUser) {
		this.createUser = createUser;
	}

	public Date getCreateDate() {
		return createDate;
	}
	@JsonDeserialize(using = CustomJsonDateDeserializer.class)
	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	public Long getUpdateUser() {
		return updateUser;
	}

	public void setUpdateUser(Long updateUser) {
		this.updateUser = updateUser;
	}

	public Date getUpdateDate() {
		return updateDate;
	}
	@JsonDeserialize(using = CustomJsonDateDeserializer.class)
	public void setUpdateDate(Date updateDate) {
		this.updateDate = updateDate;
	}

	public String getRemarks() {
		return remarks;
	}

	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}

	public List<Menu> getMenus() {
		return menus;
	}

	public void setMenus(List<Menu> menus) {
		this.menus = menus;
	}

	public Boolean getSelectState() {
		return selectState;
	}

	public void setSelectState(Boolean selectState) {
		this.selectState = selectState;
	}

	public String getCompanyName() {
		return companyName;
	}

	public void setCompanyName(String companyName) {
		this.companyName = companyName;
	}
}
